package com.zd.commodity.dao;

import java.util.List;
import java.util.Map;
/**
 * 基本数据访问层 接口
 * @author Administrator
 *
 */
public interface IBaseDao<T> {
	
	 public int executeSql(String sql, Map<String, String> argMap);
	/**
	 * hql分页
	 * @param clasz 
	 * @param sql
	 * @param argMap
	 * @param firstResult
	 * @param maxResults
	 * @return
	 */
	public List getPagedListBySql(Class clasz,String sql, Map<String, String> argMap, int firstResult, int maxResults);	
	
	
	public long getPagedListCountBySql(String sql, Map<String, String> argMap);
	
	public List getListBySql(String sql, Map<String, String> argMap);
	
	/**
	 * 返回列表(条件查询)
	 * @return
	 */
	public List<T> getList(T t1,T t2,Object param);
	
	/**
	 * 分页
	 * @param t1
	 * @param firstResult
	 * @param maxResults
	 * @return
	 */
	public List<T> getListByPage(T t1,T t2,Object param,int firstResult,int maxResults);
	
	/**
	 * 统计记录数
	 * @param t1
	 * @param firstResult
	 * @param maxResults
	 * @return
	 */
	public long getCount(T t1,T t2,Object param);
	

	/**
	 * 增加
	 * @param t
	 */
	public void add(T t);
	
	/**
	 * 删除
	 * @param id
	 */
	public void delete(Long id);
	
	
	/**
	 * 获取实体
	 * @param id
	 * @return
	 */
	public T get(Long id);
	
	/**
	 * 更新
	 * @param t
	 */
	public void update(T t);

	
	
	
	
}
